python读取写入pickle、npy格式文件(代码+注释)

您所在的位置:网站首页 bed time怎么读 python读取写入pickle、npy格式文件(代码+注释)

python读取写入pickle、npy格式文件(代码+注释)

2023-10-20 05:44| 来源: 网络整理| 查看: 265

1 Pickle文件1.1 介绍1.2 写入pickle文件1.3 读取pickle文件1.4 读取后存入txt文件 2 npy文件2.1 介绍2.2 写入npy文件2.3 读取npy文件2.3 存入txt文件

1 Pickle文件 1.1 介绍

pickle模块可以对小数据量进行存储。数据存储在一个.pickle文件中。pickle和数据库都是为了方便存储数据。

1.2 写入pickle文件

pickle可以将对象数据压到一个文件中,永久保存。这样在取用时,只需将该文件中的数据取出。而不是每次都重新进过各种语句,处理得到对象数据。

pickle.dump(obj,file,protocal) 序列化对象,并将结果数据流写入到文件对象中。参数protocol是序列化模式,默认值为0,表示以文本的形式序列化。protocol的值还可以是1或2,表示以二进制的形式序列化。

import pickle d = dict(name='Bob', age=21, score=99) with open('val.pickle', 'wb') as f: pickle.dump(d, f) 1.3 读取pickle文件

pickle.load(file) 反序列化对象。将文件中的数据解析为一个Python对象。

# 方法一 import pickle file = open('/Data/Embedding/rel.voc.pickle','rb') # 以二进制读模式(rb)打开pkl文件 data = pickle.load(file) # 读取存储的pickle文件 print(type(data)) # 查看数据类型 for i, (k, v) in enumerate(data.items()): # 读取字典中前十个键值对 if i in range(0, 10): print(k, v)

结果截图: 在这里插入图片描述

# 方法二 import pickle as pkl test= pkl.load(open("fold-0.test.pickle","rb")) print(type(test)) # 查看数据类型 # 输出: test[0].__dict__ 1.4 读取后存入txt文件 # 将字典数据存入txt文件 f = open('/Data/Embedding/rel.voc.txt','w',encoding='utf-8') #以'w'方式打开文件 for k,v in data.items(): # 遍历字典中的键值 s1 = str(k) # 把字典的值转换成字符型 s2 = str(v) # 把字典的值转换成字符型 f.write(s1 + ':' + s2 +'\n') # 一行一个键值对 f.close() # 关闭文件 file.close() # 将列表数据存入txt文件 f = open('/mnt/data/sunqi/Work/KBQA-Adapter/Data/SQB/fold-0.vaild.txt','w',encoding='utf-8') #以'w'方式打开文件 for i in range(len(a)): # 遍历列表 s = str(a[i].__dict__) # 一行一个dict f.write(s +'\n') f.close() # 关闭文件 file.close() 2 npy文件 2.1 介绍

.npy文件是numpy专用的二进制文件。

np.load和np.save是读写磁盘数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为.npy的文件中。

2.2 写入npy文件

将数组以二进制格式保存到磁盘。

import numpy as np a=np.arange(5) np.save('test.npy',a)

这样在程序所在的文件夹就生成了一个test.npy文件

2.3 读取npy文件

将test.npy文件中的数据读出来

import numpy as np test=np.load('/Data/word.emb.nre.npy',encoding = "latin1") #加载文件 print(type(test)) # 查看数据类型 # 输出: print(test.shape) # 查看numpy.ndarray数据的维度 # 输出: (100003, 300) print(test[0]) 2.3 存入txt文件 # 将numpy矩阵数据存入txt文件 doc = open('/Data/word.emb.nre.txt', 'a') #打开一个存储文件,并依次写入 for i in range (len (test)): doc.write(str(test[i])+'\n') doc.close()


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3